/**
 * 
 */
package com.proyecto.contratos.modelo.validacion;

import com.proyecto.contratos.modelo.servicios.ServicioEntessaludPortafolioservicios;
import com.proyecto.core.modelo.echo.constantes.TipoBusqueda;
import com.proyecto.core.modelo.excepciones.GeneralException;
import com.proyecto.core.modelo.servicio.interfaces.IServicioTransaccion;
import com.proyecto.core.modelo.validacion.IValidacionServicio;
import com.proyecto.histoclin.modelo.dto.CupsId;
import com.proyecto.histoclin.modelo.dto.EntessaludPortafolioservicios;
import com.proyecto.histoclin.modelo.dto.EntessaludPortafolioserviciosId;

/**
 * @author vico
 *
 */
public class ValidacionServicioEntessaludPortafolioservicios implements
		IValidacionServicio {

	/**
	 * 
	 */
	IServicioTransaccion servicioTablaApoyoCups;
	ServicioEntessaludPortafolioservicios servicioEntessaludPortafolioservicios;
	
	public ValidacionServicioEntessaludPortafolioservicios() {
		// TODO Auto-generated constructor stub
	}

	/* (non-Javadoc)
	 * @see com.proyecto.core.modelo.validacion.IValidacionServicio#buscarCatalogoPorPropiedad(java.lang.String, java.lang.String)
	 */
	public void buscarCatalogoPorPropiedad(String atributo, String valor)
			throws GeneralException {
		// TODO Auto-generated method stub
		if (atributo == null || valor == null || atributo.equals("")
				|| valor.equals("")) {
			throw new GeneralException(
				"error.contratos.tablaApoyo.EntessaludPortafolioservicios.buscarCatalogoXPropiedad.parametrosInvalidos");
		}
	}

	/* (non-Javadoc)
	 * @see com.proyecto.core.modelo.validacion.IValidacionServicio#consultar(java.lang.Object)
	 */
	public void consultar(Object o) throws GeneralException {
		// TODO Auto-generated method stub
		EntessaludPortafolioserviciosId objEntessaludPortafolioserviciosId = (EntessaludPortafolioserviciosId) o;
		if (objEntessaludPortafolioserviciosId == null || objEntessaludPortafolioserviciosId.getCiaopr() == null
				|| objEntessaludPortafolioserviciosId.getCiaopr().trim().equals("")
				|| objEntessaludPortafolioserviciosId.getEntsalportaservicod() == null
				|| objEntessaludPortafolioserviciosId.getEntsalportaservicod().equals("")
				|| objEntessaludPortafolioserviciosId.getNropersona() == null
				|| objEntessaludPortafolioserviciosId.getNropersona().equals("")
				) {
			throw new GeneralException(
					"error.contratos.tablaApoyo.EntessaludPortafolioservicios.consulta.pkNull");
		}
	}

	/* (non-Javadoc)
	 * @see com.proyecto.core.modelo.validacion.IValidacionServicio#consultarTodos(java.lang.Object)
	 */
	public void consultarTodos(Object o) throws GeneralException {
		// TODO Auto-generated method stub

		if (o == null) {
			throw new GeneralException(
					"error.contratos.tablaApoyo.EntessaludPortafolioservicios.consulta.pkNull");
		}
	}

	/* (non-Javadoc)
	 * @see com.proyecto.core.modelo.validacion.IValidacionServicio#eliminar(java.lang.Object)
	 */
	public void eliminar(Object o) throws GeneralException {
		// TODO Auto-generated method stub
		EntessaludPortafolioservicios objEntessaludPortafolioservicios = (EntessaludPortafolioservicios) o;
		if (objEntessaludPortafolioservicios == null || objEntessaludPortafolioservicios.getId().getCiaopr() == null
				|| objEntessaludPortafolioservicios.getId().getCiaopr().trim().equals("")
				|| objEntessaludPortafolioservicios.getId().getEntsalportaservicod() == null
				|| objEntessaludPortafolioservicios.getId().getEntsalportaservicod().equals("")
				|| objEntessaludPortafolioservicios.getId().getNropersona() == null
				|| objEntessaludPortafolioservicios.getId().getNropersona().equals("")) {
			throw new GeneralException(
					"error.contratos.tablaApoyo.EntessaludPortafolioservicios.eliminar.pkNull");
		}
	}

	/* (non-Javadoc)
	 * @see com.proyecto.core.modelo.validacion.IValidacionServicio#incluir(java.lang.Object)
	 */
	public void incluir(Object o) throws GeneralException {
		// TODO Auto-generated method stub
		EntessaludPortafolioservicios objEntessaludPortafolioservicios = (EntessaludPortafolioservicios) o;
		if (objEntessaludPortafolioservicios == null || objEntessaludPortafolioservicios.getId().getCiaopr() == null
				|| objEntessaludPortafolioservicios.getId().getCiaopr().trim().equals("")) {
			throw new GeneralException(
					"error.contratos.tablaApoyo.EntessaludPortafolioservicios.incluir.pkNull");
		} 
		this.validaCampos(objEntessaludPortafolioservicios,true);
	}

	/* (non-Javadoc)
	 * @see com.proyecto.core.modelo.validacion.IValidacionServicio#modificar(java.lang.Object)
	 */
	public void modificar(Object o) throws GeneralException {
		// TODO Auto-generated method stub
		EntessaludPortafolioservicios objEntessaludPortafolioservicios = (EntessaludPortafolioservicios) o;
		if (objEntessaludPortafolioservicios == null || objEntessaludPortafolioservicios.getId().getCiaopr() == null
				|| objEntessaludPortafolioservicios.getId().getCiaopr().trim().equals("")
				|| objEntessaludPortafolioservicios.getId().getEntsalportaservicod() == null
				|| objEntessaludPortafolioservicios.getId().getEntsalportaservicod().equals("")
				|| objEntessaludPortafolioservicios.getId().getNropersona() == null
				|| objEntessaludPortafolioservicios.getId().getNropersona().equals("")) {
			throw new GeneralException(
					"error.contratos.tablaApoyo.EntessaludPortafolioservicios.modificar.pkNull");
		} 
		this.validaCampos(objEntessaludPortafolioservicios,false);
	}

	public void validaCampos(EntessaludPortafolioservicios objEntessaludPortafolioservicios, boolean validarExistenciaDato) throws GeneralException{
		//Validamos campos requeridos u Obligatorios
		String campos = "";

		if (objEntessaludPortafolioservicios.getCupscod() == null
				|| "".equals(objEntessaludPortafolioservicios.getCupscod() )){
					campos = campos + "CpContratosPortafolioservicios.cupscod";
		}
		
		if (!"".equals(campos)){
			throw new GeneralException("error.contratos.tablaApoyo.EntessaludPortafolioservicios.campos_obligatorios",campos);
		}
		

		if(objEntessaludPortafolioservicios.getCupscod() != null){			
			servicioTablaApoyoCups.consultar(new CupsId(objEntessaludPortafolioservicios.getId().getCiaopr(),objEntessaludPortafolioservicios.getCupscod()) );
		}

		if(objEntessaludPortafolioservicios.getCupscod() != null){	
			String[] atributo = {"id.ciaopr","id.nropersona","cupscod","entsalportaservivigente"};
			Object[] valor = {objEntessaludPortafolioservicios.getId().getCiaopr(),
							objEntessaludPortafolioservicios.getId().getNropersona(),
							objEntessaludPortafolioservicios.getCupscod(),
						"S"
							};
			
			Long cantidad = servicioEntessaludPortafolioservicios.buscarMaxCount(atributo, valor, TipoBusqueda.OPE_IGUAL);
			if(cantidad >= 1){
				throw new GeneralException("error.contratos.tablaApoyo.EntessaludPortafolioservicios.cupscod.duplicado");
			}
		}
	}

	public IServicioTransaccion getServicioTablaApoyoCups() {
		return servicioTablaApoyoCups;
	}

	public void setServicioTablaApoyoCups(
			IServicioTransaccion servicioTablaApoyoCups) {
		this.servicioTablaApoyoCups = servicioTablaApoyoCups;
	}

	public ServicioEntessaludPortafolioservicios getServicioEntessaludPortafolioservicios() {
		return servicioEntessaludPortafolioservicios;
	}

	public void setServicioEntessaludPortafolioservicios(
			ServicioEntessaludPortafolioservicios servicioEntessaludPortafolioservicios) {
		this.servicioEntessaludPortafolioservicios = servicioEntessaludPortafolioservicios;
	}
	
}
